package cn.kgc.listener;

import cn.kgc.util.Contants;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class SessionListener implements HttpSessionListener {
    @Override
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
        System.out.println("创建会话");
       ServletContext ctx=  httpSessionEvent.getSession().getServletContext();

        //2.如果在线人数为null 或者0 ，则给一个初始值为1
        Integer  count= (Integer) ctx.getAttribute(Contants.ONLINE_COUNT);
        if(count==null||count==0){
            //表示这个系统第一个用户登录
            count=1;
        } else{
            //3.否则，增加1； 放到ServletContext中保存起来
            count++;
        }
        ctx.setAttribute(Contants.ONLINE_COUNT,count);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
        System.out.println("销毁会话");
        //1.获取ServletContext中当前系统在线人数
        ServletContext ctx= httpSessionEvent.getSession().getServletContext();

        //2.减1； 放到ServletContext中保存起来
        Integer  count= (Integer) ctx.getAttribute(Contants.ONLINE_COUNT);
        count--;
        ctx.setAttribute(Contants.ONLINE_COUNT,count);
    }
}
